package br.com.gerenciador_recursos.servlets.util;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.gerenciador_recursos.model.Task;
import br.com.gerenciador_recursos.service.TaskLocalServiceUtil;
import br.com.gerenciador_recursos.service.Timer;
import br.com.gerenciador_recursos.util.Constants;
import br.com.gerenciador_recursos.util.ParamUtil;

public class TaskActionUtil {

	public static Task addOrUpdate(HttpServletRequest req,
			HttpServletResponse res, boolean inserir) throws Exception {

		int projectId = ParamUtil.getInt(Constants.PROJECT_ID);

		int taskId = ParamUtil.getInt(Constants.TASK_ID);

		int userIdExecutor = ParamUtil.getInt(Constants.USER_ID_EXECUTOR);

		String nome = ParamUtil.getString(req, Constants.NOME);

		String descricao = ParamUtil.getString(req, Constants.DESCRICAO);

		Date dataInicioPrevisto = ParamUtil.getDate(req,
				Constants.DATA_INICIO_PREVISTO);

		Date dataInicioRealizado = ParamUtil.getDate(req,
				Constants.DATA_INICIO_REALIZADO);

		/**
		 * TODO get timer da request
		 * */
		
		Timer estimativa = null;
		
		Task task = null;

		if (inserir) {
			task = TaskLocalServiceUtil.add(projectId, nome, descricao,
					estimativa, userIdExecutor, dataInicioPrevisto,
					dataInicioRealizado);
		} else {
			task = TaskLocalServiceUtil.update(taskId, projectId, nome,
					descricao, estimativa, userIdExecutor, dataInicioPrevisto,
					dataInicioRealizado);
		}

		return task;
	}

	public static void delete(HttpServletRequest req, HttpServletResponse res)
			throws Exception {
		
		int taskId = ParamUtil.getInt(Constants.TASK_ID);

		TaskLocalServiceUtil.delete(taskId);
	}

}
